#ifndef _FONTS_MANAGER_H
#define _FONTS_MANAGER_H
#include <stdint.h>

/*字符位图结构体*/
typedef struct FontBitMap {
	int iXLeft;  
	int iYTop;   
	int iXMax;   
	int iYMax;   
	int iBpp;    
	int iPitch;  	  /* 每一行图像数据所占用的字节数 */
	int iCurOriginX;  /*原点坐标*/
	int iCurOriginY;  
	int iNextOriginX; 
	int iNextOriginY; 
	uint8_t *pucBuffer;  
}T_FontBitMap, *PT_FontBitMap;
/*字体对象结构体*/
typedef struct FontOpr {
	char *name;             
	int (*FontInit)(char *pcFontFile, uint32_t dwFontSize);   /*初始化函数*/ 
	int (*GetFontBitmap)(uint32_t dwCode, PT_FontBitMap ptFontBitMap);  
	void (*SetFontSize)(uint32_t dwFontSize);   
	struct FontOpr *ptNext;  
}T_FontOpr, *PT_FontOpr;

typedef struct FontDetail{
	char cFontName[16];
	char cFontFile[16];
	uint32_t dwFontSize;
}T_FontDetail;


int RegisterFontOpr(PT_FontOpr ptFontOpr);

void ShowFontOpr(void);

int FontsInit(void);

int ASCIIInit(void);

int FreeTypeInit(void);

PT_FontOpr GetFontOpr(char *pcName);

void SetFontSize(uint32_t dwFontSize);

uint32_t GetFontSize(void);

int GetFontBitmap(uint32_t dwCode, PT_FontBitMap ptFontBitMap);

int SetFontsDetail(char *pcFontsName, char *pcFontsFile, uint32_t dwFontSize);

#endif 

